//
//  Problem2148.swift
//  LeetCode
//
//  Created by 武侠 on 2023/6/29.
//  Copyright © 2023 zhulongiMac02. All rights reserved.
//

import UIKit

/*
 2148. 元素计数 简单
 给你一个整数数组 nums ，统计并返回在 nums 中同时至少具有一个严格较小元素和一个严格较大元素的元素数目。

 示例 1：
     输入：nums = [11,7,2,15]
     输出：2
     解释：元素 7 ：严格较小元素是元素 2 ，严格较大元素是元素 11 。
     元素 11 ：严格较小元素是元素 7 ，严格较大元素是元素 15 。
     总计有 2 个元素都满足在 nums 中同时存在一个严格较小元素和一个严格较大元素。
 示例 2：
     输入：nums = [-3,3,3,90]
     输出：2
     解释：元素 3 ：严格较小元素是元素 -3 ，严格较大元素是元素 90 。
     由于有两个元素的值为 3 ，总计有 2 个元素都满足在 nums 中同时存在一个严格较小元素和一个严格较大元素。

 提示：
 1 <= nums.length <= 100
 -105 <= nums[i] <= 105
 */
class Problem2148: NSObject {
    /*
     思路：
     找到最大值和最小值
     统计除了最大值和最小值的个数
     */
    func countElements(_ nums: [Int]) -> Int {
        var minValue = Int.max
        var maxValue = Int.min
        
        for n in nums {
            minValue = min(minValue, n)
            maxValue = max(maxValue, n)
        }
        
        var sum = 0
        for n in nums {
            if n != minValue, n != maxValue {
                sum += 1
            }
        }
        return sum
    }
}
